package com.whut.coc.util;

import cn.hutool.core.util.StrUtil;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Description: 标签Util
 * @Author: Zonghe Wang
 * @Date: 2025/6/22 14:53
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class TagUtil {

    // 正则表达式模式
    private static final Pattern TAG_PATTERN = Pattern.compile("^#[A-Z0-9]{9}$");

    /**
     * 验证并编码玩家标签
     * @param rawTag 原始标签（如 #G8UQPP02P）
     * @return 编码后的标签（如 %23G8UQPP02P）
     * @throws IllegalArgumentException 如果标签格式无效
     */
    public static String encodePlayerTag(String tag) {
        if (!isValidTag(tag)) {
            return tag;
        }
        String tagBody = tag.substring(1); // 去掉#后的部分
        // 编码#为%23
        return "%23" + tagBody;
    }

    /**
     * 验证标签格式是否正确
     * @param tag 待验证的标签
     * @return 如果格式正确返回 true，否则返回 false
     */
    public static boolean isValidTag(String tag){
        if (StrUtil.isBlank(tag)) {
            return false;
        }
        Matcher matcher = TAG_PATTERN.matcher(tag);
        return matcher.matches();
    }

}
